<svg xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink">
  <defs>
    <!-- The rect that's used everywhere -->
    <rect id="rect" x="2" y="2" width="96" height="16"
          style="stroke-width: 4; fill:lime; stroke: teal"/>

    <!-- Symbols with the testcases' preserveAspectRatio values applied -->
    <symbol id="pAR_xMinYMin_slice"
            viewBox="0 0 100 20" preserveAspectRatio="xMinYMin slice">
      <use xlink:href="#rect"/>
    </symbol>
    <symbol id="pAR_none"
            viewBox="0 0 100 20" preserveAspectRatio="none">
      <use xlink:href="#rect"/>
    </symbol>
    <symbol id="pAR_xMaxYMax_meet"
            viewBox="0 0 100 20" preserveAspectRatio="xMaxYMax meet">
      <use xlink:href="#rect"/>
    </symbol>
    <symbol id="pAR_xMaxYMax_slice"
            viewBox="0 0 100 20" preserveAspectRatio="xMaxYMax slice">
      <!-- this one corresponds to 'defer' in the image used in the testcase,
           as well as to the HTML <img> elements (which don't bring their own
           preserveAspectRatio value) -->
      <use xlink:href="#rect"/>
    </symbol>

    <!-- Single column from the testcase -->
    <g id="column">
      <use y="0"   xlink:href="#pAR_xMaxYMax_slice" width="60"  height="20"/>
      <use y="50"  xlink:href="#pAR_xMinYMin_slice" width="100" height="40"/>
      <use y="100" xlink:href="#pAR_none"           width="100" height="40"/>
      <use y="150" xlink:href="#pAR_xMaxYMax_meet"  width="80"  height="40"/>
      <use y="200" xlink:href="#pAR_xMaxYMax_slice" width="80"  height="40"/>
      <use y="250" xlink:href="#pAR_xMaxYMax_slice" width="30"  height="50"/>
    </g>
  </defs>

  <!-- Rendered output: 2 instances of our column (defined above) -->
  <use xlink:href="#column"/>
  <use x="150" xlink:href="#column"/>
</svg>
